package com.example.demo.service;

import org.springframework.stereotype.Service;

import com.example.demo.dto.AddRequestDto;
import com.example.demo.dto.DeleteResponseDto;
import com.example.demo.dto.DetailRequestDto;
import com.example.demo.dto.DetailResponseDto;
import com.example.demo.dto.EditRequestDto;
import com.example.demo.dto.InfoRequestDto;
import com.example.demo.dto.InfoResponseDto;

/**
 * 権限管理 Service
 */
@Service
public interface AuthorityService {

	/**
	 * 削除
	 * 
	 * @param requestDto
	 * @return
	 */
	DeleteResponseDto authorityRemoval(String authorityCode, boolean deletionFlag);

	/**
	 * ログイン
	 * 
	 * @param requestDto
	 * @return InfoResponseDto
	 */
	InfoResponseDto authorityInfo(InfoRequestDto inforequestDto);

	/**
	 * 権限情報を取得表示する
	 * 
	 * @param requestDto
	 * @return Integer
	 */
	Integer select(EditRequestDto requestDto);

	/**
	 * 権限情報を編集する
	 * 
	 * @param requestDto
	 * @return Integer
	 */
	Integer updateAuthority(EditRequestDto requestDto);

	/**
	 * ログイン
	 * 
	 * @param requestDto
	 * @return DResponseDto
	 */
	DetailResponseDto detail(DetailRequestDto requestDto);

	/**
	 * 増加
	 * 
	 * @param addRequestDto
	 * @return Integer
	 */
	Integer add(AddRequestDto addRequestDto);

	/**
	 * コードを取得する
	 *
	 * @param
	 * @return Integer
	 */
	Integer selectMaxCode();
}
